using System.IO;

namespace Yahtzee.Game
{
    public class OndersteSectie : Sectie
    {
        private DrieDezelfde drieDezelfde;
        private VierDezelfde vierDezelfde;
        private FullHouse fullHouse;
        private KleineStraat kleineStraat;
        private Straat groteStraat;
        private Yahtzee yahtzee;
        private VrijeKeus vrijeKeus;

        public OndersteSectie()
        {
            drieDezelfde = new DrieDezelfde();
            vierDezelfde = new VierDezelfde();
            fullHouse = new FullHouse();
            kleineStraat = new KleineStraat();
            groteStraat = new GroteStraat();
            yahtzee = new Yahtzee();
            vrijeKeus = new VrijeKeus();
        }

        private Scorecombinatie[] asArray()
        {
            return new Scorecombinatie[] { drieDezelfde, vierDezelfde, fullHouse,
				kleineStraat, groteStraat, yahtzee, vrijeKeus };
        }

        
        public override Scorecombinatie[] geefCombinaties()
        {
            return asArray();
        }

        
        public override int getScore()
        {
            int totaal = 0;
            foreach (Scorecombinatie combi in asArray())
            {
                if (!combi.isVrij())
                {
                    totaal += combi.getScore();
                }
            }
            return totaal;
        }

        
        public override void print(TextWriter output)
        {
            foreach (Scorecombinatie c in asArray())
            {
                c.write(output);
            }
            output.WriteLine("  -------");
            output.Write("  totaal onder:{0,11}", getScore());
            output.WriteLine();
        }
    }
}